草庐IT

python 反序列化

全部标签

Python:使用 minidom 搜索具有特定文本的节点

我目前面临的XML看起来像这样:345754这包含在层次结构中。我已经解析了xml,并希望通过搜索“345754”找到ID节点。 最佳答案 vartec的回答需要更正(抱歉,我不确定我能不能做到),它应该是:xmldoc=xml.dom.minidom.parse('your.xml')matchingNodes=[nodefornodeinxmldoc.getElementsByTagName("ID")ifnode.firstChild.nodeValue=='345754']它有两处错误:(i)标签名称区分大小写,因此匹配"i

c# - 反序列化经过验证的 XML 时出现问题,无法转换为数组或从数组转换

我有点不适应。我使用xsd.exe从xml文件创建一个xsd架构,然后从该xsd创建一个C#类。这一切似乎都很好。目前我只是想反序列化XML。我正在反序列化的文件与我最初用于构建类的文件完全相同。这是我的代码:StringxsdPath=@"C:\Users\tol56881\Documents\dnd4e.xsd";StringxmlPath=@"C:\Users\tol56881\Documents\dnd4e.xml";StringxsdNamespace="";//ValidationstuffXmlParserContextcontext=newXmlParserContex

Python 的 libxml2 无法解析 unicode 字符串

好的,Python的libxml2绑定(bind)的文档确实是****。我的问题:XML文档存储在Python中的字符串变量中。该字符串是Unicode的实例,其中包含非ASCII字符。我想用libxml2解析它,看起来像这样:#-*-coding:utf-8-*-importlibxml2DOC=u"""Bäääh!"""xml_doc=libxml2.parseDoc(DOC)结果是:Traceback(mostrecentcalllast):File"test.py",line13,inxml_doc=libxml2.parseDoc(DOC)File"c:\Python26\l

python - 当我不知道会有多少层时,如何遍历数据结构的所有层级以提取所有数据?

我需要从结构中提取数据并将其放入列表中,但我不知道该结构有多少层。对于每个级别,我可以调用level.children(),如果当前级别之下没有级别,则返回[],如果有,则返回返回[object,object,...],我可以在其中的每一个上再次调用children()。我需要深入了解结构,直到将所有级别的数据提取到列表中。当基于这样的结构时:JohnSmithTeamNameAstadium列表应该是这样的:[[{'name':'name','attrs':{},'text':'JohnSmith','parent':None},],[{'name':'team','attrs':{

c# - 更改数组元素的 XML 序列化程序的元素名称

我有一个类是通过XSD.exe工具从XML文件生成的。我的类(class)包含一个包含元素的数组。直到最近,才可以从完全实例化的业务对象呈现整个文档,但是由于大小的原因,我们现在需要将文档数组元素呈现为流,这样我们就不会耗尽内存。但是,当您呈现数组元素时,您会在XML序列化中获得不同的元素名称。我试图创建一个XMLAttributesOverride但这返回了一个错误,指出我无法覆盖此属性的XmlElement属性。我试图保持这种强类型化并与我的XSD相关,所以如果有人知道如何将XML元素的名称更改为其数组名称+1答案。 最佳答案

python - 如何通过 Elementtree 检查属性存在?

我需要检查某些属性是否存在。喜欢:if"blah-blah-blah"isNone:print"thereisnosuchattribute"else:print"Theattributeexists" 最佳答案 Element对象具有attrib中的所有属性听写。if'blah'notinelem.attrib:print"thereisnosuchattribute" 关于python-如何通过Elementtree检查属性存在?,我们在StackOverflow上找到一个类似的问题

python - 调用 ElementTree.parse 时为 "XML or text declaration not at start of entity: line 2, column 0"

ElementTree.parse()在下面的简单示例中失败并出现错误xml.etree.ElementTree.ParseError:XMLortextdeclarationnotatstartofentity:line2,column0XML看起来有效,代码也很简单,那么我做错了什么?xmlExample="""stuff"""importiosource=io.StringIO(xmlExample)importxml.etree.ElementTreeasETtree=ET.parse(source) 最佳答案 您在XML字

python - 如何将xml文件保存到磁盘?

我做了类似于this的事情,但找不到将结果写入xml文件的方法。 最佳答案 您链接到的网页上的代码使用doc.toprettyxml从XMLDOM创建一个字符串,因此您可以将该字符串写入一个文件:f=open("output.xml","w")try:f.write(doc.toprettyxml(indent=""))finally:f.close()在Python2.6(或者我想是2.7,无论何时出现)中,您可以使用“with”语句:withopen("output.xml","w")asf:f.write(doc.topret

c# - 如果可为 null 的属性为 null 或为空,如何从序列化中忽略它?

我有一个用于Xml序列化的类。在其中我有一个用XmlAttribute装饰的可为空的属性:[XmlAttribute("lastUpdated")]publicDateTime?LastUpdated{get;set;}如果属性为null或为空,如何从序列化中忽略它?我已经尝试了下面的但是当有一个值时它不会序列化(总是忽略):[XmlIgnore]publicDateTime?LastUpdatedValue{get;set;}[XmlAttribute("lastUpdated")]publicDateTimeLastUpdated{get;set;}publicboolShould

python - ConfigParser 之类的东西是否适合在运行之间保存状态(键,值)?

我想在Python程序运行之间保存一组键、值对(字符串、整数),在后续运行时重新加载它们,并写入更改以在下一次运行时可用。我不认为此数据是配置文件,但它非常适合ConfigParser功能。我只需要两个[部分]。它只有几百对而且非常简单,所以我认为没有必要做一个实际的数据库。这样使用ConfigParser合适吗?我还考虑过使用Perl和XML::Simple。那个怎么样?有没有办法在没有Python或Perl的情况下在bash中执行此操作? 最佳答案 嗯,你有更好的选择。例如,您可以使用pickle或json格式。Pickle序列